package com.jrx.anytxn.param.service.sms;

import com.jrx.anytxn.i18n.response.TxnPage;
import com.jrx.anytxn.common.exception.TxnBizException;
import com.jrx.anytxn.common.exception.TxnException;
import com.jrx.anytxn.param.dto.sms.PrSmsTemplateTableReq;
import com.jrx.anytxn.param.dto.sms.PrSmsTemplateTableRes;
import com.jrx.anytxn.param.entity.PrSmsTemplateTable;

import java.util.List;

/**
 * @Classname ISmsTemplatesService
 * @Description 短信模板接口层
 * @Date
 * @Created lbz
 */
public interface ISmsTemplatesService {

    /**
     * 通过短信模板ID和租户ID查询短信模板信息
     *
     * @param templateId 短信模板ID
     * @param tenantId  租户ID
     * @return SmsTemplateTableRes
     * @author lbz
     * date: 2019/12/5
     */
    PrSmsTemplateTableRes getByTenIdIdAndTemplateId(String tenantId, String templateId) throws TxnException;

    /**
     * 添加短信模板
     *
     * @param prSmsTemplateTableReq 请求参数
     * @return PrSmsTemplateTableRes
     * @author lbz
     * 2019/12/6
     */
    PrSmsTemplateTableRes addSmsTemplate(PrSmsTemplateTableReq prSmsTemplateTableReq) throws TxnException;

    /**
     * 根据租户ID分页查询模板信息
     *
     * @param pageNum  页码
     * @param pageSize 页大小
     * @param prSmsTemplateTable 查询请求req
     * @return TxnPage<PrSmsTemplateTableRes>
     * @author lbz
     * date: 2019/12/6
     */
    TxnPage<PrSmsTemplateTableRes> findAllPageByCondition(Integer pageNum, Integer pageSize, PrSmsTemplateTable prSmsTemplateTable) throws TxnException;

    /**
     * 获取所有短信模板列表
     *
     * @param tenantId 租户ID
     * @return List<PrSmsTemplateTableRes>
     * @author lbz
     * date: 2019/12/6
     */
    List<PrSmsTemplateTableRes> findAllSmsTemplateByTenId(String tenantId);

    /**
     * 根据租户ID和模板ID编辑信息
     *
     * @param prSmsTemplateTableReq 延滞参数请求参数
     * @return PrSmsTemplateTableRes
     * @author lbz
     * date: 2019/12/6
     */
    PrSmsTemplateTableRes modifySmsTemplateTable(PrSmsTemplateTableReq prSmsTemplateTableReq) throws TxnBizException;

    /**
     * 根据租户ID和模板ID删除信息
     *
     * @param tenantId 租户ID
     * @param templateId   模板ID
     * @return java.lang.Boolean
     * @author lbz
     * date: 2019/12/6
     */
    Boolean removeByTenantIdAndTemplateId(String tenantId, String templateId) throws TxnBizException;

    /**
     * 根据机构号和租户ID获取短信模板信息
     *
     * @param orgId    机构号
     * @param tenantId 租户ID
     * @return java.util.List<PrSmsTemplateTableRes>
     * @author lbz
     * date: 2019/12/6
     */
    List<PrSmsTemplateTableRes> findAllSmsTemplateByOrgIdAndTenId(String orgId, String tenantId) throws TxnException;


    /**
     * 根据租户 模板编号查询
     * @param tenantId
     * @param templateId
     * @return PrSmsTemplateTableRes
     */
    PrSmsTemplateTable selectByTenantIdAndTemplateId(String tenantId , String templateId);

}
